#pragma once
#include "cybertron/sensor/noise/NoiseBase.hpp"

CYBERTRON_BEGIN

class CompositeNoise : public NoiseBase
{
public:
	CompositeNoise();
	CompositeNoise(const NoiseBases& noises);
	virtual ~CompositeNoise();

	vec3 update() override;
	void resetNoise() override;

	void addNoise(NoiseBasePtr pNoise);
	const NoiseBases& allNoises() const;
	NoiseBasePtr getNoise(NoiseType noiseType) const;

protected:
	NoiseBases m_noises;
};

CYBERTRON_END